Cloud computing refers to the delivery of computing and/or storage services over the Internet or other suitable communication network. Cloud computing services may be hosted within an enterprise and provided to support operations of departments within the enterprise, to groups of people or individuals within the enterprise, and so on. Cloud computing services may be commercially provided by cloud computing service providers to customers (or consumers), whether they be organizations or individuals. A cloud computing service may be provided (or sold) to customers on-demand. A cloud computing service may be provided in increments of time, e.g., by the hour, monthly, etc. Service offerings typically include computing capacity, network capability, and storage capacity.
Three categories of services are generally recognized: infrastructure-as-a-service (IaaS), platform-as-a-service (PaaS) and software-as-a-service (SaaS). IaaS type cloud computing services provide the customer with a virtual infrastructure of servers and storage. The customer can request (and, in the case of a commercially provided service, pay for) only as much capacity as they need. PaaS type cloud computing services are typically defined as a configuration of software (applications, development tools, etc.) hosted on the provider's cloud computing infrastructure. The PaaS platform provides customers with the underlying computing and storage infrastructure to support their applications. In the SaaS cloud computing model, the provider supplies the hardware infrastructure and the software product(s), which the customer accesses through a front-end portal. Services can be anything from Web-based email to inventory control and database processing.
Cloud computing provides an organization with the ability to host applications on computing infrastructure provided by others. This model has many benefits but these cannot be realized if the availability of the computing resources backing the organization's virtual data center (VDC) does not match the organization's needs. The “availability” of providers of computing and storage infrastructure is sometimes expressed in terms of “host failures”; e.g., “Our service offering protects against two host failures.” To an organization, host failures are not a useful metric for assessing the level of availability that is being provided. First, expressing availability in terms of host failures competes against the idea of hiding the underlying infrastructure, which is a key component of the cloud computing model. Second, organizations care about application uptimes, and they cannot readily infer how long an application will be down from knowledge about how many host failures are anticipated.